using System.ComponentModel.DataAnnotations;

namespace SupplierCustomerManagement.Domain.Entities
{
    /// <summary>
    /// 附件实体
    /// 代表系统中上传的文件附件，包含文件信息、上传信息、关联实体等
    /// </summary>
    public class Attachment : BaseEntity
    {
        /// <summary>
        /// 关联实体ID（客户ID、供应商ID、商品采购价格ID等）
        /// </summary>
        public int RelatedEntityId { get;  set; }

        /// <summary>
        /// 关联实体类型（Customer/Supplier/ProductPurchasePrice等）
        /// </summary>
        public string RelatedEntityType { get;  set; }

        /// <summary>
        /// 文件名（系统存储的文件名）
        /// </summary>
        public string FileName { get;  set; }

        /// <summary>
        /// 原始文件名（用户上传时的文件名）
        /// </summary>
        public string OriginalFileName { get;  set; }

        /// <summary>
        /// 文件路径
        /// </summary>
        public string FilePath { get;  set; }

        /// <summary>
        /// 文件大小（字节）
        /// </summary>
        public long FileSize { get;  set; }

        /// <summary>
        /// 文件类型
        /// </summary>
        public string FileType { get;  set; }

        /// <summary>
        /// 文件扩展名
        /// </summary>
        public string FileExtension { get;  set; }

        /// <summary>
        /// 上传人ID
        /// </summary>
        public int? UploaderId { get;  set; }

        /// <summary>
        /// 上传人姓名
        /// </summary>
        public string? UploaderName { get;  set; }

        /// <summary>
        /// 文件MD5值
        /// </summary>
        public string? FileMD5 { get;  set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remarks { get;  set; }

       
    }
} 